package com.enumeration.demo01;

public class Test {
    public static void main(String[] args) {
        System.out.println("没有使用枚举类之前");
        // 使用常量时，可以这么引用
        int day = 6;
        if (day == Weekday.SUN || day == Weekday.SAT) {
            System.out.println("work at home 在家工作");
        }
        // 可以定义为字符串类型
        String c = "r";
        if (Color.RED.equals(c)) {
            System.out.println("红配绿。圣诞老人色彩");
        }

        int weekday = 7;
        int task = 1;
        // Weekday的范围是 0~6，并并不包含 7，编译器无法检查不在枚举中的int值，虽然编译通过，不报错。
        if (weekday == Weekday.SUN ||  weekday == 7) {
            // 把枚举用于其他变量比较了
            if (task == Weekday.MON) {
                System.out.println("可以用于其他用途，与其他变量比较");
            }
        }
        /**
         * 综上所述：为什么要是使用枚举类？
         * 1、检查不存在的枚举中的值，减少报错，由编辑器检查。所有的错误尽可能让编译器找出来，所有的错误越早发现越好。
         * 2、不同用途的枚举需要不同的类型来标记，不能混用，只能用于特定场景。
         */
        // 定义了枚举类 Week
        Week days = Week.SUN;
        System.out.println(days);
        if (days == Week.SAT || days == Week.SUN) {
            System.out.println("在家办公！");
        } else {
            System.out.println("上班！");
        }

        System.out.println("测试枚举类调用构造方法");
        FruitsType f = FruitsType.APPLE;
        System.out.println(f);
    }
}
